home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2007 December / PCWKCD1207B.iso / Windows marzen / Maxthon 2.0.4 / mx_2.0.4.5799.exe / template / _shared / js / maxAjaxManager.js < prev    next >
Text File  |  2007-09-20  |  3KB  |  142 lines

  1. var maxAjaxManager={};
  2. maxAjaxManager.error={};
  3. maxAjaxManager.xmlhttp={};
  4. maxAjaxManager.callback={};
  5. maxAjaxManager.status={};
  6. maxAjaxManager.result={};
  7. maxAjaxManager.createXMLHTTP=function(id){
  8. var _2;
  9. try{
  10. if(window.XMLHttpRequest){
  11. _2=new XMLHttpRequest();
  12. }else{
  13. _2=new ActiveXObject("Microsoft.XMLHTTP");
  14. }
  15. }
  16. catch(e){
  17. if(id){
  18. maxAjaxManager.error[id]={"code":e.number,"text":e.description};
  19. }
  20. return null;
  21. }
  22. return _2;
  23. };
  24. maxAjaxManager.get=function(id,_4,_5,_6){
  25. return maxAjaxManager.call(id,"get",_4,_5,_6);
  26. };
  27. maxAjaxManager.post=function(id,_8,_9,_a,_b){
  28. if(!_b){
  29. _b={};
  30. }
  31. _b["requestString"]=_a;
  32. return maxAjaxManager.call(id,"post",_8,_9,_b);
  33. };
  34. maxAjaxManager.call=function(id,_d,_e,_f,_10){
  35. if(!_10){
  36. _10={};
  37. }
  38. if(!_d){
  39. _d="GET";
  40. }
  41. if(!_10["async"]){
  42. _10["async"]=true;
  43. }
  44. if(!_10["responseType"]){
  45. _10["responseType"]=0;
  46. }
  47. if(!_10["requestString"]){
  48. _10["requestString"]="";
  49. }
  50. if((_d!="post")||(_d=="post"&&_10["requestString"]=="")){
  51. _d="get";
  52. }
  53. if(!maxAjaxManager.xmlhttp[id]){
  54. maxAjaxManager.xmlhttp[id]=maxAjaxManager.createXMLHTTP(id);
  55. if(!maxAjaxManager.xmlhttp[id]){
  56. return false;
  57. }
  58. }
  59. maxAjaxManager.callback[id]=_f;
  60. maxAjaxManager.xmlhttp[id].onreadystatechange=function(){
  61. return maxAjaxManager.checkState(id,_10["responseType"]);
  62. };
  63. if(_10["requestHeaders"]){
  64. for(var i=0;i<_10["requestHeaders"].length;i++){
  65. maxAjaxManager.xmlhttp[id].setRequestHeader(_10["requestHeaders"][i][0],_10["requestHeaders"][i][1]);
  66. }
  67. }
  68. try{
  69. maxAjaxManager.xmlhttp[id].open(_d,_e,_10["async"]);
  70. maxAjaxManager.xmlhttp[id].send(_10["requestString"]);
  71. }
  72. catch(e){
  73. maxAjaxManager.error[id]={"code":e.number,"text":e.description};
  74. return false;
  75. }
  76. return true;
  77. };
  78. maxAjaxManager.checkState=function(id,_13){
  79. if(maxAjaxManager.xmlhttp[id].readyState!=4){
  80. return;
  81. }
  82. if(_13=="xml"){
  83. maxAjaxManager.result[id]=maxAjaxManager.xmlhttp[id].responseXML.xml;
  84. }else{
  85. if(_13=="stream"){
  86. maxAjaxManager.result[id]=maxAjaxManager.xmlhttp[id].responseStream;
  87. }else{
  88. maxAjaxManager.result[id]=maxAjaxManager.xmlhttp[id].responseText;
  89. }
  90. }
  91. maxAjaxManager.status[id]={"code":maxAjaxManager.xmlhttp[id].status,"text":maxAjaxManager.xmlhttp[id].statusText};
  92. maxAjaxManager.callback[id](id,(maxAjaxManager.xmlhttp[id].status==200?true:false));
  93. maxAjaxManager.xmlhttp[id].onreadystatechange=function(){
  94. };
  95. maxAjaxManager.xmlhttp[id]=null;
  96. maxAjaxManager.callback[id]=null;
  97. };
  98. maxAjaxManager.dispose=function(id){
  99. try{
  100. maxAjaxManager.xmlhttp[id].abort();
  101. maxAjaxManager.xmlhttp[id].onreadystatechange=function(){
  102. };
  103. maxAjaxManager.xmlhttp[id]=null;
  104. maxAjaxManager.callback[id]=null;
  105. maxAjaxManager.result[id]=null;
  106. maxAjaxManager.error[id]=null;
  107. maxAjaxManager.status[id]=null;
  108. }
  109. catch(e){
  110. }
  111. };
  112. maxAjaxManager.cleanUp=function(){
  113. try{
  114. for(var id in maxAjaxManager.xmlhttp){
  115. maxAjaxManager.xmlhttp[id].abort();
  116. maxAjaxManager.xmlhttp[id].onreadystatechange=function(){
  117. };
  118. maxAjaxManager.xmlhttp[id]=null;
  119. }
  120. for(var id in maxAjaxManager.callback){
  121. maxAjaxManager.callback[id]=null;
  122. }
  123. for(var id in maxAjaxManager.result){
  124. maxAjaxManager.result[id]=null;
  125. }
  126. for(var id in maxAjaxManager.error){
  127. maxAjaxManager.error[id]=null;
  128. }
  129. for(var id in maxAjaxManager.status){
  130. maxAjaxManager.status[id]=null;
  131. }
  132. }
  133. catch(e){
  134. }
  135. };
  136. if(window.attachEvent){
  137. window.attachEvent("onunload",maxAjaxManager.cleanUp);
  138. }else{
  139. window.addEventListener("unload",maxAjaxManager.cleanUp,false);
  140. }
  141.  
  142.